package nodos;

import javax.swing.tree.DefaultMutableTreeNode;

import mundo.SimboloLexico;

public class NodoExpresion extends Nodo {

	private Nodo expresionAritmetica;
	private Nodo expresionBooleana;
	private SimboloLexico identificador;

	public NodoExpresion(Nodo expresionAritmetica, Nodo expresionBooleana, SimboloLexico identificador) {
		this.expresionAritmetica = expresionAritmetica;
		this.expresionBooleana = expresionBooleana;
		this.identificador = identificador;
	}

	@Override
	public DefaultMutableTreeNode getSubArbolVisual() {
		DefaultMutableTreeNode raiz=new DefaultMutableTreeNode("Expresion");
		if(expresionAritmetica!=null)
			raiz.add(expresionAritmetica.getSubArbolVisual());
		if(expresionBooleana!=null)
			raiz.add(expresionBooleana.getSubArbolVisual());
		if(identificador!=null)
			raiz.add(new DefaultMutableTreeNode(identificador.getLexema()));
		return raiz;
	}

	@Override
	public String traducir(int profundidad) {
		String codJava="";
		if(expresionAritmetica!=null)
			codJava+=expresionAritmetica.traducir(profundidad);
		if(expresionBooleana!=null)
			codJava+=expresionBooleana.traducir(profundidad);
		if(identificador!=null)
			codJava+=identificador.traducirSimbolo();
		return codJava;
	}

}
